|
Showing 1 - 12 of
12 matches in All Departments
|
The Very Lazy Caterpillar (Hardcover)
Robert Harper; Illustrated by White magic studios; Cover design or artwork by White magic studios
|
R573
Discovery Miles 5 730
|
Ships in 10 - 15 working days
|
|
The Very Lazy Caterpillar (Paperback)
Robert Harper; Illustrated by White magic studios; Cover design or artwork by White magic studios
|
R299
Discovery Miles 2 990
|
Ships in 10 - 15 working days
|
In 1961 Jean Gottmann published his pioneering study of urban
sprawl along the Boston-Washington corridor. The book's title soon
became a household word, and its author gained worldwide acclaim
for his insights into the dimensions of urbanism. Since writing
"Megalopolis, " Gottmann has published more than eighty articles on
the urban scene. Now, for the first time, the best of that work is
available in a single volume.
"Since Megalopolis" treats urban questions from the ancient and
modern worlds alike. What can today's planners learn from the
ancient Greek city of Miletus? What do the shape and placement of
the world's capitals tell us about their function? How large can
our cities grow before suffocating in slums, pollution, and crime?
Gottmann offers a hard-headed argument on the economic value of
city parks--and a utopian vision of Manhattan auto traffic speeding
through subway tunnels. He examines Tanaka's Tokyo and Solomon's
Jerusalem--and tells why the king's wisdom did not extend to urban
planning.
In an introductory essay new to this volume, Gottmann draws a
lesson from an earlier megalopolis. "In antiquity, " he writes, "a
great city flourished for 600 years on the small and craggy island
of Delos in the Aegean sea. When circumstances excluded it from the
predominant networks, it fell into ruins. Now an archaeological
museum, Delos reminds us that cities are human artifacts and exist
by participating in systems of relationships, not just as eagle
nests."
This text develops a comprehensive theory of programming languages
based on type systems and structural operational semantics.
Language concepts are precisely defined by their static and dynamic
semantics, presenting the essential tools both intuitively and
rigorously while relying on only elementary mathematics. These
tools are used to analyze and prove properties of languages and
provide the framework for combining and comparing language
features. The broad range of concepts includes fundamental data
types such as sums and products, polymorphic and abstract types,
dynamic typing, dynamic dispatch, subtyping and refinement types,
symbols and dynamic classification, parallelism and cost semantics,
and concurrency and distribution. The methods are directly
applicable to language implementation, to the development of logics
for reasoning about programs, and to the formal verification
language properties such as type safety. This thoroughly revised
second edition includes exercises at the end of nearly every
chapter and a new chapter on type refinements.
The importance of typed languages for building robust software
systems is, by now, an undisputed fact. Years of research have led
to languages with richly expressive, yet easy to use, type systems
for high-level programming languages. Types provide not only a
conceptual framework for language designers, but also a ord
positive bene ts to the programmer, principally the ability to
express and enforce levels of abstraction within a program. Early
compilers for typed languages followed closely the methods used for
their untyped counterparts. The role of types was limited to the
earliest s- ges of compilation, and they were thereafter ignored
during the remainder of the translation process. More recently,
however, implementors have come to - cognize the importance of
types during compilation and even for object code. Several
advantages of types in compilation have been noted to date: { They
support self-checking by the compiler. By tracking types during c-
pilation it is possible for an internal type checker to detect
translation errors at an early stage, greatly facilitating compiler
development. { They support certi cation of object code. By
extending types to the ge- rated object code, it becomes possible
for a code user to ensure the basic integrity of that code by
checking its type consistency before execution. { They support
optimized data representations and calling conventions, even in the
presence of modularity. By passing types at compile-, link-, and
even run-time, it is possible to avoid compromises of data
representation imposed by untyped compilation techniques.
|
The Little Typer (Paperback)
Daniel P. Friedman, David Thrane Christiansen; Illustrated by Duane Bibby; Foreword by Robert Harper; Afterword by Conor McBride
|
R1,108
R1,009
Discovery Miles 10 090
Save R99 (9%)
|
Ships in 9 - 15 working days
|
An introduction to dependent types, demonstrating the most
beautiful aspects, one step at a time. A program's type describes
its behavior. Dependent types are a first-class part of a language,
and are much more powerful than other kinds of types; using just
one language for types and programs allows program descriptions to
be as powerful as the programs they describe. The Little Typer
explains dependent types, beginning with a very small language that
looks very much like Scheme and extending it to cover both
programming with dependent types and using dependent types for
mathematical reasoning. Readers should be familiar with the basics
of a Lisp-like programming language, as presented in the first four
chapters of The Little Schemer. The first five chapters of The
Little Typer provide the needed tools to understand dependent
types; the remaining chapters use these tools to build a bridge
between mathematics and programming. Readers will learn that tools
they know from programming-pairs, lists, functions, and
recursion-can also capture patterns of reasoning. The Little Typer
does not attempt to teach either practical programming skills or a
fully rigorous approach to types. Instead, it demonstrates the most
beautiful aspects as simply as possible, one step at a time.
Standard ML is a general-purpose programming language designed
for large projects. This book provides a formal definition of
Standard ML for the benefit of all concerned with the language,
including users and implementers. Because computer programs are
increasingly required to withstand rigorous analysis, it is all the
more important that the language in which they are written be
defined with full rigor.One purpose of a language definition is to
establish a theory of meanings upon which the understanding of
particular programs may rest. To properly define a programming
language, it is necessary to use some form of notation other than a
programming language. Given a concern for rigor, mathematical
notation is an obvious choice. The authors have defined their
semantic objects in mathematical notation that is completely
independent of Standard ML.In defining a language one must also
define the rules of evaluation precisely--that is, define what
meaning results from evaluating any phrase of the language. The
definition thus constitutes a formal specification for an
implementation. The authors have developed enough of their theory
to give sense to their rules of evaluation.The Definition of
Standard ML is the essential point of reference for Standard ML.
Since its publication in 1990, the implementation technology of the
language has advanced enormously and the number of users has grown.
The revised edition includes a number of new features, omits
little-used features, and corrects mistakes of definition.
|
|